In a video network, a video source may be transmitted to multiple client devices with different characteristics. The client devices in the video network may have different channel capacities, different display resolutions, and different computing resources. For example, a video source may be transmitted through the video network to a high performance computer with high resolution monitors in a residential home, and at the same time, to a mobile device with a low resolution screen and with a battery powered CPU. Therefore, it is desirable for a video source to be encoded in such a way that the same encoded video stream can be transmitted, and be usable by all clients, of different, characteristics, in the network. In other words, it is desirable to encode the video source once, but to transmit the same encoded video at different channel rates, and to decode it at different resolutions, and with different complexities.
Traditional video coding such as MPEG2 does not provide the scalability desired for today's video network as described above. The lack of scalability exhibits itself in at least two ways. First, an MPEG2 encoded video is not scalable with transmission channel capacity. Because of its fixed bit rate, an encoded MPEG2 stream is unusable in a channel supporting a lower bit rate, and at the same time, suboptimal in a channel with higher bit rate. This is the cause of the cliff effect encountered in video broadcast or multicast. Second, the MPEG2 video is not scalable with decoder resolution or decoding complexity. An MPEG2 video can be decoded only at one resolution, with a fixed complexity (not considering post-processing such as resizing, or enhancement, after decoding). This creates the need for multiple encoded streams of the same video content to target decoders of different resolutions and different decoding complexity.
Efforts have been made to introduce scalability into video coding. However, these conventional efforts encode video data into ordered layers, or levels, of streams, and the resolution, or quality, of the decoded video increases progressively as higher layers, or levels, are added to the decoder. Hierarchical modulation may be used in conjunction with these scalable video codes to achieve more bandwidth efficiency. For example, the high priority of hierarchical modulation can be used to carry the lower layer video streams, and low priority of hierarchical modulation can be used to carry the higher layer of video streams. These efforts have provided some alleviation to problems such as the cliff effect in video transmission using the traditional video coding, but challenges of mobile video broadcast still remain.